Page({
  data: {
    timeData: {
      seconds: 0
    },
    countDownVisible: false,
    mobile: '13288888888',
    code: ''
  },
  // 获取倒计时信息
  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      // 倒计时结束时隐藏倒计时组件
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
    // console.log(14, this.data.timeData.seconds);
  },
  // 验证手机号格式
  verifyMobile(mobile) {
    const pattern = /^[1][3-8][0-9]{9}$/
    // 正则验证
    const res = pattern.test(mobile)
    if (!res) wx.utils.toast(' 请输入正确的手机号')
    return res
  },
  // 验证验证码
  verifyCode(code) {
    const pattern = /^[0-9]{6}$/
    const res = pattern.test(code)
    if (!res) wx.utils.toast('请输入正确验证码')
    return res
  },
  // 获取验证码
  async getcode() {
    // 获取手机号，验证，如果没问题就发请求
    // 去除空格
    const mobile = this.data.mobile.trim()
    // 判断验证是否通过
    if (!this.verifyMobile(mobile)) return
    // 发请求   { mobile }是简写
    const { code, data } = await wx.http.get('/code', { mobile })
    // 如果失败，提示
    if (code !== 10000) return wx.utils.toast('发送失败，请稍后重试！')
    wx.utils.toast('发送成功，请查收短信')
    // 开始倒计时
    this.setData({
      countDownVisible: true
    }),
      console.log(data);
    // 将验证码填入表单
    this.setData({
      code: data.code
    })
  },
  onLoad(option) {
    this.redirectURL = option.redirectURL
  },
  // 点击登录
  async submitForm() {
    // 获取手机号
    const mobile = this.data.mobile.trim()
    // 获取验证码
    const code = this.data.code.trim()
    // 验证手机号和验证码
    if (!this.verifyMobile(mobile)) return
    if (!this.verifyCode(code)) return
    // 发请求 要传入用户的手机号和验证码 简写
    const res = await wx.http.post('/login', { mobile, code })
    // 校验数据是否合法
    if (res.code !== 10000) return wx.utils.toast('请检查验证码是否正确')
    // console.log(res);
    // 拿到token
    const app = getApp()
    // 保存token
    app.setToken(res.data.token, res.data.refreshToken)
    // 跳转到登录前的页面,考虑到没有redirectURL,跳转到首页。
    wx.redirectTo({
      url: this.redirectURL || '/pages/index/index'
    })

  }
})
